// 简易 EventBus 实现
class EventBus {
  constructor() {
    this.events = {};
  }

  // 监听事件
  on(event, handler) {
    if (!this.events[event]) {
      this.events[event] = [];
    }
    this.events[event].push(handler);
  }

  // 移除事件
  off(event, handler) {
    if (!this.events[event]) return;
    this.events[event] = this.events[event].filter((fn) => fn !== handler);
  }

  // 触发事件
  emit(event, ...args) {
    if (!this.events[event]) return;
    this.events[event].forEach((fn) => fn(...args));
  }

  // 只监听一次
  once(event, handler) {
    const wrapper = (...args) => {
      handler(...args);
      this.off(event, wrapper);
    };
    this.on(event, wrapper);
  }
}

// 挂载到全局
window.myEventBus = new EventBus();

// // 使用示例
// // 监听
// window.eventBus.on('hello', (msg) => {
//   console.log('收到消息：', msg);
// });
// // 触发
// window.eventBus.emit('hello', '你好 EventBus！');
// 移除
// window.eventBus.off('hello', handler);
